package com.lqian.demo03.register;

import com.lqian.demo03.exception.IllegalNameException;

/**
 *
 * 模拟用户注册信息功能（7）
 * 要求：控制台输入用户名、密码、邮箱、电话等信息
 * (1)用户名包含大小写字母和数字，长度6-12位，不允许其他非法字符，如果不符合抛出自定义异常。
 * (2)密码 password 包含大小写字母和数字,长度6-12位。不允许其他非法字符，如果不符合抛出自定义异常。
 * (3)邮箱按照实际规则校验，如果不符合抛出自定义异常。
 * (4)电话按照实际规则校验，如果不符合抛出自定义异常。
 * (5)如果都符合规范，则输出注册成功提示，否则注册失败。
 */
public class UserService {

    public void register(String username,String password) throws IllegalNameException {

        if(username == null || username.length() < 6 || username.length() > 12){

            throw new IllegalNameException("用户名不合法，长度必须在【6-14】之间");
        }
        if (precheck(password)){
            throw new IllegalNameException("密码不合法，包含大小写字母和数字,长度6-12位。不允许其他非法字符！如[@#$%^&*]");
        }

        //程序能够执行到此处说明：用户名合法
        System.out.println("注册成功，欢迎【" + username + "】");
    }

    public int CheckSetPassword(String s) {
        boolean result = precheck(s);
        if (result) {
            return 1;
        }
        return 0;
    }

    private boolean precheck(String s) {

        if (s.length() > 12 || s.length() < 6) {
            return false;
        }

        int a = 0;
        int b = 0;
        int c = 0;
        for (int i = 0; i < s.length(); i++) {
            if (Character.isUpperCase(s.charAt(i))) {
                a = 1;
            }
            if (Character.isLowerCase(s.charAt(i))) {
                b = 1;
            }
            if (Character.isDigit(s.charAt(i))) {
                c = 1;
            }
        }

        System.out.println("a->"+a+"b->"+b+"c->"+c);
        if (a + b + c  < 3) {
            return true;
        }
        return false;

    }




}
